home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 038a / baswiz17.zip / MIRRORS.BAS < prev    next >
BASIC Source File  |  1991-04-01  |  2KB  |  68 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         BASWIZ  Copyright (c) 1990-1991  Thomas G. Hanlin III        |
  4. '   |                                                                      |
  5. '   |                       The BASIC Wizard's Library                     |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    DECLARE SUB GetDisplay (Adapter%, Mono%)
  10.    DECLARE SUB G12Cls ()
  11.    DECLARE SUB G12Color (BYVAL Foreground%, BYVAL Background%)
  12.    DECLARE SUB G12Mode (BYVAL Graphics%)
  13.    DECLARE SUB G12Plot (BYVAL X%, BYVAL Y%)
  14.  
  15.    CONST MaxX = 639
  16.    CONST MaxY = 479
  17.    CONST MaxColor = 15
  18.  
  19.    DEFINT A-Z
  20.  
  21.    RANDOMIZE TIMER
  22.  
  23.    GetDisplay Adapter, Mono
  24.  
  25.    IF Adapter < 6 THEN
  26.       PRINT "Sorry, but you must have a VGA display active to run this demo."
  27.       END
  28.    END IF
  29.  
  30.    X = INT(RND * MaxX \ 2)
  31.    Y = INT(RND * MaxY \ 2)
  32.    C = INT(RND * (MaxColor - 1) + 1)
  33.  
  34.    G12Mode 1
  35.    G12Color C, 0
  36.  
  37.    DO
  38.       ky$ = INKEY$
  39.       IF LEN(ky$) THEN
  40.          SELECT CASE UCASE$(ky$)
  41.             CASE "C": G12Cls
  42.             CASE "P": WHILE INKEY$ = "": WEND
  43.             CASE ELSE
  44.          END SELECT
  45.       ELSE
  46.          G12Plot X, Y
  47.          G12Plot MaxX - X, Y
  48.          G12Plot MaxX - X, MaxY - Y
  49.          G12Plot X, MaxY - Y
  50.          SELECT CASE INT(RND * 3)
  51.             CASE 0: X = X - 1: IF X < 0 THEN X = MaxX \ 2
  52.             CASE 1: X = X + 1: IF X > MaxX \ 2 THEN X = 0
  53.             CASE ELSE
  54.          END SELECT
  55.          SELECT CASE INT(RND * 3)
  56.             CASE 0: Y = Y - 1: IF Y < 0 THEN Y = MaxY \ 2
  57.             CASE 1: Y = Y + 1: IF Y > MaxY \ 2 THEN Y = 0
  58.             CASE ELSE
  59.          END SELECT
  60.          IF INT(RND * 20) = 1 THEN
  61.             C = INT(RND * (MaxColor - 1) + 1)
  62.             G12Color C, 0
  63.          END IF
  64.       END IF
  65.    LOOP UNTIL ky$ = CHR$(27)
  66.  
  67.    G12Mode 0
  68.